package com.yic.module.qms.dal.mysql.inspectschemeitem;

import java.util.*;

import com.yic.framework.common.pojo.PageResult;
import com.yic.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.yic.framework.mybatis.core.mapper.BaseMapperX;
import com.yic.module.qms.dal.dataobject.inspectschemeitem.InspectSchemeItemDO;
import org.apache.ibatis.annotations.Mapper;
import com.yic.module.qms.controller.admin.inspectschemeitem.vo.*;

/**
 * 检验方案产品关联 Mapper
 *
 * @author 系统管理员
 */
@Mapper
public interface InspectSchemeItemMapper extends BaseMapperX<InspectSchemeItemDO> {

    default PageResult<InspectSchemeItemDO> selectPage(InspectSchemeItemPageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<InspectSchemeItemDO>()
                .eqIfPresent(InspectSchemeItemDO::getSchemeId, reqVO.getSchemeId())
                .eqIfPresent(InspectSchemeItemDO::getItemId, reqVO.getItemId())
                .orderByDesc(InspectSchemeItemDO::getId));
    }

    default List<InspectSchemeItemDO> selectList(InspectSchemeItemExportReqVO reqVO) {
        return selectList(new LambdaQueryWrapperX<InspectSchemeItemDO>()
                .eqIfPresent(InspectSchemeItemDO::getSchemeId, reqVO.getSchemeId())
                .eqIfPresent(InspectSchemeItemDO::getItemId, reqVO.getItemId())
                .orderByDesc(InspectSchemeItemDO::getId));
    }

    default List<InspectSchemeItemDO> selectListByItemId(Long itemId) {
        return selectList(new LambdaQueryWrapperX<InspectSchemeItemDO>()
                .eq(InspectSchemeItemDO::getItemId, itemId));
    }

    default int deleteBySchemeId(Long schemeId) {
        return delete(new LambdaQueryWrapperX<InspectSchemeItemDO>()
                .eq(InspectSchemeItemDO::getSchemeId, schemeId));
    }

    default List<InspectSchemeItemDO> selectByItemId(Long itemId) {
        return selectList(new LambdaQueryWrapperX<InspectSchemeItemDO>()
                .eq(InspectSchemeItemDO::getItemId, itemId));
    }
}
